package com.zxy.enums;

import lombok.Getter;
import lombok.Setter;

import java.util.Arrays;
import java.util.Optional;

public enum ProductStatus {
//    上架SALE 下架 SHELVES

//    定义枚举
    SALE(1,"上架"),
    SHELVES(0,"下架");

    @Getter @Setter
    private Integer code;
    @Getter @Setter
    private String msg;

    ProductStatus(Integer code, String msg){
        this.code = code;
        this.msg = msg;
    }
//    返回静态类 CategoryStatus，通过 code 返回枚举类型
//    CategoryStatus 本身是一个数组(把这个值) 转成 stream 流,通过流里面的过滤器 filter 去查找
//    找传过来的值(code)是否有对应的枚举，如果能找到，就把第一个找出来

    public static ProductStatus findByCode(Integer code){
//        Optional是一个可空对象，判断对象是否是空的
        Optional<ProductStatus> optional = Arrays.stream(ProductStatus.values()).filter(item -> item.getCode().equals(code)).findFirst();

//        如果有，return optional.get,无，则return null
//        if(optional.isPresent()){
//            return optional.get();
//        }
//        return optional.orElse(null);
        return optional.orElse(null);


    }
}
